package br.gov.mi.corporativo.dominio.boundary.comum.pessoadomiciliobancario;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import br.gov.mi.corporativo.dominio.entidade.comum.PessoaDomicilioBancario;


@Path("domiciliosbancarios")
public class PessoaDomicilioBancarioRestAdapter extends SpringBeanAutowiringSupport {

	@Autowired
	private PessoaDomicilioBancarioEndPoint service;
	
	@GET
	@Produces({MediaType.APPLICATION_JSON})
	public Iterable<PessoaDomicilioBancario> recuperarTodos(){
		return service.recuperarTodos();
	}
	
	@GET
	@Path("id/{idPessoaDomicilioBancario}")
	@Produces({MediaType.APPLICATION_JSON})
	public PessoaDomicilioBancario recuperarPorIdPessoaDomicilioBancario(@PathParam("idPessoaDomicilioBancario")Long idPessoaDomicilioBancario){
		return service.recuperarPorIdPessoaDomicilioBancario(idPessoaDomicilioBancario);
	}
	
	@GET
	@Path("pessoa/{pessoa}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDomicilioBancario> recuperarPorPessoa(@PathParam("pessoa")Long pessoa){
		return service.recuperarPorPessoa(pessoa);
	}
	
	@GET
	@Path("agencia/{agencia}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDomicilioBancario> recuperarPorAgencia(@PathParam("agencia")Long agencia){
		return service.recuperarPorAgencia(agencia);
	}
	
	@GET
	@Path("contacorrente/{nrContaCorrente}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDomicilioBancario> recuperarPorNrContaCorrente(@PathParam("nrContaCorrente")String nrContaCorrente){
		return service.recuperarPorNrContaCorrente(nrContaCorrente);
	}
	
	@GET
	@Path("contaprincipal/{stContaPrincipal}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDomicilioBancario> recuperarPorStContaPrincipal(@PathParam("stContaPrincipal")String stContaPrincipal){
		return service.recuperarPorStContaPrincipal(stContaPrincipal);
	}
	
	@GET
	@Path("stregistro/{stRegistro}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaDomicilioBancario> recuperarPorStRegistro(@PathParam("stRegistro")String stRegistro){
		return service.recuperarPorStRegistro(stRegistro);
	}


}
